package com.atguyigu.codesday01.NotSafeDemo;

import java.util.List;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;
/* java.util.ConcurrentModificationException
* 1 故障现象
 *   java.util.ConcurrentModificationException
 *
 * 2 导致原因
 *
 *
 * 3 解决方法
 *  3.1 new Vector<>();
 *  3.2 Collections.synchronizedList(new ArrayList<>());
 *  3.3 juc---new CopyOnWriteArrayList<>();
 *
 * 4 优化建议(同样的错误不犯第2次)
 *
 * 写时复制 ，同一个时间，有读取，也有写入。  读写分离的思想
*
*  */




public class listNotSafeTest {

    public static void main(String[] args) {
        List<String> list = new CopyOnWriteArrayList<>();      //ArrayList<>();
        for (int i = 0; i <30 ; i++) {
           new Thread(()->{list.add(UUID.randomUUID().toString().substring(0,9));
               System.out.println(list);
           },String.valueOf(i)).start();

        }

    }
}
